// function module() {
//     let inner = 1;
//     let increaseInner = function() {
//         inner++;
//     }
//     let decreaseInner = function() {
//         inner--;
//     }
//     let getInner = function() {
//         return inner;
//     }
//     return {
//         increaseInner,
//         decreaseInner,
//         getInner
//     }
// }
// let api = module();
// console.log(api.getInner());
// api.increaseInner();
// console.log(api.getInner());
// api.decreaseInner();
// console.log(api.getInner());
// console.log(1)

// setTimeout(() => {
//   console.log(2)
// }, 0)

// Promise.resolve().then(() => {
// 	console.log(3)
// }).then(() => {
// 	console.log(4)
// }).catch((error)=>{
  
//   console.log(error);
// })

// console.log(5)
async function async1(){
    console.log('async1 start')
  	try{
      await async2();
  		console.log('async1 end');
    }catch(e){
      
    }   
}
async function async2(){
    console.log('async2')
}

console.log('script start')

setTimeout(function(){
    console.log('setTimeout') 
},0)  
async1();
new Promise(function(resolve){
    console.log('promise1')
    resolve();
}).then(function(){
    console.log('promise2')
})
console.log('script end')